% 05-test_records.tex - 测试记录
\section{测试记录}

\subsection{部署难度评分（1-5分，越低越简单）}
\begin{table}[H]
    \centering
    \caption{数据库部署难度评分记录}
    \label{tab:deploy_score}
    \begin{tabular}{lccccc}
        \toprule
        数据库 & 步骤数 & 自动化程度 & 依赖复杂度 & 部署耗时（分钟） & 综合评分 \\
        \midrule
        TDengine & 3 & 高 & 低 & 5 & 2 \\  
        MatrixOne & 3 & 高 & 低 & 5 & 2 \\
        openGauss & 3 & 高 & 低 & 5 & 2 \\
        OceanBase & 3 & 高 & 低 & 5 & 2 \\
        Milvus & 3 & 高 & 低 & 5 & 2 \\
        \bottomrule
    \end{tabular}
    \small 注：综合评分基于"步骤简洁性+自动化程度+依赖量"加权计算，1分=极简单，5分=极复杂
\end{table}

\subsection{TDengine 测试记录}

\subsubsection{TDengine 性能测试记录（时序场景）}
\begin{table}[H]
    \centering
    \caption{TDengine 时序数据库性能测试记录}
    \label{tab:tdengine_performance}
    \begin{tabular}{lcccc}
        \toprule
        测试项目 & 数据量 & 插入速度(记录/秒) & 查询延迟(ms) & 资源占用(MB) \\
        \midrule
        数据插入测试 & 1000条 & 252.0 & - & 184 \\
        计数查询测试 & 1000条 & - & 391 & 184 \\
        条件查询测试 & 1000条 & - & 353 & 184 \\
        聚合查询测试 & 1000条 & - & 398 & 184 \\
        时间范围查询 & 1000条 & - & 388 & 184 \\
        标签更新测试 & 1次 & - & 374 & 184 \\
        复杂分析查询 & 1000条 & - & 389 & 184 \\
        并发查询测试 & 5查询 & - & 388 & 184 \\
        \bottomrule
    \end{tabular}
\end{table}

\subsubsection{TDengine 功能兼容性记录}
\begin{table}[H]
    \centering
    \caption{TDengine SQL 语法兼容度测试}
    \label{tab:tdengine_compatibility}
    \begin{tabular}{lp{0.7\linewidth}}
        \toprule
        语法特性 & TDengine 支持情况 \\
        \midrule
        基础SQL语法 & $\checkmark$（支持SELECT、INSERT、CREATE等） \\
        时间序列函数 & $\checkmark$（支持时序专用函数如SLIDING、INTERVAL） \\
        数据聚合 & $\checkmark$（支持COUNT、AVG、SUM、MAX、MIN等） \\
        子查询 & $\triangle$（支持基础子查询，复杂嵌套有限制） \\
        存储过程 & $\times$（暂不支持存储过程） \\
        触发器 & $\times$（暂不支持触发器机制） \\
        外键约束 & $\times$（时序数据库通常不强调关系完整性） \\
        \bottomrule
    \end{tabular}
\end{table}

\subsection{MatrixOne 测试记录}

\subsubsection{MatrixOne 性能测试记录（OLTP 场景）}
\begin{table}[H]
    \centering
    \caption{MatrixOne OLTP 性能测试记录}
    \label{tab:matrixone_performance}
    \begin{tabular}{lcccc}
        \toprule
        测试项目 & 数据量 & TPS（事务/秒） & 平均延迟（ms） & 内存消耗（MB） \\
        \midrule
        数据插入测试 & 1000条 & 9259.3 & - & 942 \\
        计数查询测试 & 1000条 & - & 34 & 942 \\
        条件查询测试 & 1000条 & - & 34 & 942 \\
        JOIN查询测试 & 1000条 & - & 47 & 942 \\
        聚合查询测试 & 1000条 & - & 33 & 942 \\
        复杂分析查询 & 1000条 & - & 34 & 942 \\
        更新性能测试 & 100条 & - & 39 & 942 \\
        并发查询测试 & 5查询 & - & 49 & 942 \\
        \bottomrule
    \end{tabular}
\end{table}

\subsubsection{MatrixOne SQL 兼容性注意事项}
\begin{table}[H]
    \centering
    \caption{MatrixOne 与 MySQL 语法差异}
    \label{tab:matrixone_sql_compatibility}
    \begin{tabular}{lp{0.7\linewidth}}
        \toprule
        语法特性 & MatrixOne 处理方式 \\
        \midrule
        GROUP BY 子句 & 要求 SELECT 中的所有非聚合列必须出现在 GROUP BY 中 \\
        索引创建 & 自动管理，不支持显式索引创建语法 \\
        存储引擎 & 仅支持内置存储引擎，不支持 ENGINE=InnoDB \\
        密码认证 & 环境变量设置可能不生效，需使用默认密码 \\
        \bottomrule
    \end{tabular}
\end{table}

\paragraph{测试脚本调整说明}：为适配 MatrixOne 的 SQL 语法要求，测试脚本进行了以下调整：
\begin{itemize}
    \item 修改 GROUP BY 查询，确保所有非聚合列包含在 GROUP BY 子句中
    \item 移除显式索引创建语句
    \item 移除存储引擎指定
    \item 简化密码处理逻辑，直接使用默认密码
\end{itemize}

\subsubsection{MatrixOne 功能兼容性记录}
\begin{table}[H]
    \centering
    \caption{MatrixOne MySQL 语法兼容度测试}
    \label{tab:matrixone_compatibility}
    \begin{tabular}{lp{0.7\linewidth}}
        \toprule
        语法特性 & MatrixOne 支持情况 \\
        \midrule
        基础DDL语句 & $\checkmark$（支持CREATE、ALTER、DROP等） \\
        基础DML语句 & $\checkmark$（支持SELECT、INSERT、UPDATE、DELETE） \\
        事务支持 & $\checkmark$（支持ACID事务） \\
        索引功能 & $\checkmark$（支持主键、唯一索引、普通索引） \\
        复杂查询 & $\triangle$（JOIN、子查询支持，但GROUP BY要求更严格） \\
        存储过程 & $\times$（暂不支持存储过程） \\
        触发器 & $\times$（暂不支持触发器） \\
        JSON支持 & $\triangle$（JSON数据类型支持度待验证） \\
        \bottomrule
    \end{tabular}
\end{table}

\subsection{openGauss 测试记录}

\subsubsection{openGauss 性能测试记录（OLTP 场景）}
\begin{table}[H]
    \centering
    \caption{openGauss OLTP 性能测试记录}
    \label{tab:opengauss_performance}
    \begin{tabular}{lcccc}
        \toprule
        测试项目 & 数据量 & TPS（事务/秒） & 平均延迟（ms） & 资源占用（MB） \\
        \midrule
        数据插入测试 & 1000条 & 24390.2 & - & 616.4 \\
        计数查询测试 & 1000条 & - & 24 & 616.4 \\
        条件查询测试 & 1000条 & - & 26 & 616.4 \\
        JOIN查询测试 & 1000条 & - & 34 & 616.4 \\
        聚合查询测试 & 1000条 & - & 28 & 616.4 \\
        复杂分析查询 & 1000条 & - & 30 & 616.4 \\
        更新性能测试 & 100条 & - & 30 & 616.4 \\
        并发查询测试 & 5查询 & - & 37 & 616.4 \\
        \bottomrule
    \end{tabular}
\end{table}

\subsubsection{openGauss 功能兼容性记录}
\begin{table}[H]
    \centering
    \caption{openGauss PostgreSQL 语法兼容度测试}
    \label{tab:opengauss_compatibility}
    \begin{tabular}{lp{0.7\linewidth}}
        \toprule
        语法特性 & openGauss 支持情况 \\
        \midrule
        基础SQL语法 & $\checkmark$（完全兼容PostgreSQL语法） \\
        事务支持 & $\checkmark$（完整ACID事务支持） \\
        复杂查询 & $\checkmark$（支持窗口函数、CTE、复杂JOIN等） \\
        存储过程 & $\checkmark$（支持PL/pgSQL） \\
        触发器 & $\checkmark$（支持各类触发器） \\
        分区表 & $\checkmark$（支持范围、列表分区） \\
        并行查询 & $\checkmark$（支持查询并行化） \\
        全文检索 & $\checkmark$（支持全文索引和搜索） \\
        JSON支持 & $\checkmark$（完整JSON数据类型和函数支持） \\
        \bottomrule
    \end{tabular}
\end{table}

\subsection{OceanBase 测试记录}

\subsubsection{OceanBase 性能测试记录（分布式OLTP场景）}
\begin{table}[H]
    \centering
    \caption{OceanBase 分布式数据库性能测试记录}
    \label{tab:oceanbase_performance}
    \begin{tabular}{lcccc}
        \toprule
        测试项目 & 数据量 & 执行时间(秒) & TPS(事务/秒) & 资源占用 \\
        \midrule
        数据插入测试 & 1000条 & 0.350 & 2857.1 & CPU 92.92\%, 内存 3.8GB \\
        计数查询测试 & 1000条 & 0.048 & - & - \\
        条件查询测试 & 1000条 & 0.025 & - & - \\
        JOIN查询测试 & 1000条 & 0.098 & - & - \\
        聚合查询测试 & 1000条 & 0.027 & - & - \\
        复杂分析查询 & 1000条 & 0.028 & - & - \\
        更新性能测试 & 100条 & 0.029 & - & - \\
        并发查询测试 & 5查询 & 0.048 & - & - \\
        \bottomrule
    \end{tabular}
\end{table}

\subsubsection{OceanBase 功能兼容性记录}
\begin{table}[H]
    \centering
    \caption{OceanBase MySQL 语法兼容度测试}
    \label{tab:oceanbase_compatibility}
    \begin{tabular}{lp{0.7\linewidth}}
        \toprule
        语法特性 & OceanBase 支持情况 \\
        \midrule
        基础SQL语法 & $\checkmark$（完全兼容MySQL语法） \\
        事务支持 & $\checkmark$（完整ACID事务支持） \\
        复杂查询 & $\checkmark$（支持JOIN、子查询、复杂聚合） \\
        存储过程 & $\checkmark$（支持PL/SQL） \\
        触发器 & $\checkmark$（支持各类触发器） \\
        分区表 & $\checkmark$（支持范围、列表、哈希分区） \\
        分布式事务 & $\checkmark$（支持跨节点分布式事务） \\
        高可用性 & $\checkmark$（自动故障切换） \\
        \bottomrule
    \end{tabular}
\end{table}

\subsection{Milvus 测试记录}

\subsubsection{Milvus 性能测试记录（向量检索场景）}
\begin{table}[H]
    \centering
    \caption{Milvus 向量数据库性能测试记录}
    \label{tab:milvus_performance}
    \begin{tabular}{lcccc}
        \toprule
        测试项目 & 数据量 & 执行时间（秒） & 吞吐量 & 资源占用 \\
        \midrule
        集合创建 & 1个 & 0.533 & - & - \\
        批量插入测试 & 5000向量 & 3.380 & 1479.32 向量/秒 & - \\
        精确搜索测试 & 5查询 & 2.540 & - & - \\
        过滤搜索测试 & 1查询 & 0.009 & - & - \\
        复杂搜索测试 & 1查询 & 0.010 & - & - \\
        聚合查询测试 & 5000向量 & 0.034 & - & - \\
        并发查询测试 & 10查询 & 0.020 & 501.70 查询/秒 & - \\
        更新操作测试 & 10记录 & 3.051 & - & - \\
        \bottomrule
    \end{tabular}
\end{table}

\subsubsection{Milvus 功能兼容性记录}
\begin{table}[H]
    \centering
    \caption{Milvus 向量数据库功能支持度测试}
    \label{tab:milvus_compatibility}
    \begin{tabular}{lp{0.7\linewidth}}
        \toprule
        功能特性 & Milvus 支持情况 \\
        \midrule
        向量相似度搜索 & $\checkmark$（支持多种相似度度量） \\
        标量字段过滤 & $\checkmark$（支持基于标量字段的过滤） \\
        批量向量插入 & $\checkmark$（支持高效批量插入） \\
        向量索引构建 & $\checkmark$（支持IVF\_FLAT等多种索引） \\
        多向量查询 & $\checkmark$（支持批量向量查询） \\
        并发查询 & $\checkmark$（支持高并发向量检索） \\
        数据分区 & $\checkmark$（支持数据分区管理） \\
        动态schema & $\checkmark$（支持动态添加字段） \\
        标量聚合 & $\triangle$（通过查询后处理实现） \\
        传统SQL查询 & $\times$（不支持传统关系型查询） \\
        \bottomrule
    \end{tabular}
\end{table}

\subsection{测试结果分析}
\begin{itemize}
    \item \textbf{openGauss测试发现}：
    \begin{itemize}
        \item 性能表现卓越，批量插入TPS高达24390.2
        \item 查询性能优异，各类查询延迟在24-37ms之间
        \item 资源使用效率高，CPU使用率仅1.72\%，内存占用616.4MB
        \item 功能完整性好，完全兼容PostgreSQL语法
    \end{itemize}
    
    \item \textbf{MatrixOne测试发现}：
    \begin{itemize}
        \item OLTP性能优秀，插入TPS达9259.3
        \item 查询性能稳定，各类查询延迟在33-49ms之间
        \item 资源消耗较高，CPU使用率47\%，内存占用942MB
        \item MySQL兼容性良好，但GROUP BY语法要求更严格
    \end{itemize}
    
    \item \textbf{TDengine测试发现}：
    \begin{itemize}
        \item 时序场景优化，资源使用效率高（内存仅184MB）
        \item 查询性能稳定，时序查询延迟在353-398ms之间
        \item 插入性能相对较低，批量插入TPS为252.0
        \item 专注于时序数据处理，传统OLTP功能有限
    \end{itemize}

    \item \textbf{OceanBase测试发现}：
    \begin{itemize}
        \item 分布式事务处理能力强，插入TPS达2857.1
        \item 查询性能优秀，各类查询延迟在25-98ms之间
        \item 资源消耗较高，CPU使用率92.92\%，内存占用3.8GB
        \item 完全兼容MySQL语法，迁移成本低
    \end{itemize}
    
    \item \textbf{Milvus测试发现}：
    \begin{itemize}
        \item 向量检索性能优秀，支持高并发查询（501.70查询/秒）
        \item 数据插入速率达1479.32向量/秒，满足实时性要求
        \item 过滤搜索性能极佳，延迟仅9ms
        \item 专注于向量检索场景，传统OLTP功能有限
    \end{itemize}
    
    \item \textbf{性能对比分析}：
    \begin{itemize}
        \item \textbf{写入性能}：openGauss（24390.2 TPS）> MatrixOne（9259.3 TPS）> OceanBase（2857.1 TPS）> TDengine（252.0 TPS）> Milvus（1479.32 向量/秒）
        \item \textbf{查询性能}：openGauss（24-37ms）> MatrixOne（33-49ms）> \\ 
        OceanBase（25-98ms）> TDengine（353-398ms）
        \item \textbf{向量检索}：Milvus在向量场景表现卓越，过滤搜索延迟仅9ms
        \item \textbf{资源效率}：TDengine资源消耗最低，OceanBase资源需求最高
    \end{itemize}
    
    \item \textbf{适用场景总结}：
    \begin{itemize}
        \item openGauss：企业级OLTP系统、复杂分析场景
        \item MatrixOne：传统OLTP业务、MySQL迁移场景
        \item OceanBase：分布式事务处理、高并发OLTP场景
        \item TDengine：时序数据处理、物联网监控场景
        \item Milvus：向量相似度搜索、AI大模型应用
    \end{itemize}
\end{itemize}

\small 注：测试环境为 Intel Xeon Silver 4210R + 62GB DDR4 + 7.3TB HDD，数据基于实际测试结果计算